package cn.zct.domain.tag.service;

import cn.zct.domain.tag.adapter.repository.ITagRepository;
import cn.zct.domain.tag.model.entity.CrowdTagsJobEntity;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

@Slf4j
@Service
public class TagService implements ITagService{

    @Resource
    private ITagRepository tagRepository;
    @Override
    public void execTagBatchJob(String tagId, String batchId) {

        //1.查询标签批次任务
        log.info("人群标签批次任务 tagId:{} batchId:{}", tagId, batchId);
        CrowdTagsJobEntity crowdTagsJob  = tagRepository.queryCrowdTagsJobEntity(tagId,batchId);
        //// 2. 采集用户数据 - 这部分需要采集用户的消费类数据，后续有用户发起拼单后再处理。

        //3.根据数据查询出的符合任务的人群标签，需要被加入到数据库中
        List<String> userIdList = new ArrayList<String>() {{
            add("zct");
            add("xiaofuge");
        }};

        //4.加入到数据库并缓存到Redis中
        for(String userId:userIdList){
            tagRepository.addCrowdTagsUserId(tagId,userId);
        }
        //5.更新数据库中的标签统计量
        tagRepository.updateCrowdTagsStatistics(tagId, userIdList.size());
    }
}
